package com.atguigu.gulimall.product;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;

/**
 * @Cacheable: 触发缓存填充，查询结果放入缓存中，适用于查询数据的方法
 * @CacheEvict: 触发缓存驱逐，失效模式，更新后删除缓存。下次请求数据库后再次放入缓存中获取最新数据
 * @CachePut：在不干扰方法执行的情况下更新缓存。适用于更新数据的方法
 * @Caching：重新组合要应用于方法的多个缓存操作。
 * @CacheConfig：在类级别共享一些常见的缓存相关设置。
 **/
@SpringBootApplication
@EnableDiscoveryClient
@MapperScan("com.atguigu.gulimall.product.dao")
@EnableRedisHttpSession
@EnableFeignClients
public class GulimallProductApplication {

    public static void main(String[] args) {
        SpringApplication.run(GulimallProductApplication.class, args);
    }

}
